/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package energiebedrijf.Classes;

import java.util.*;
import java.io.Serializable;

/**
 * Base class voor de andere nutssoort, zoals Gas, Water en Electriciteit
 * @author pdb
 */
public class NutsSoort implements Serializable {

    private int id = -1;
    private int _perceel_Id = -1;
    private Perceel Perceel;
    private Date _Ingangsdatum = new Date();
    private int _Verbruik = 0;
    private int _VorigeMeterstand = 0;
    private boolean _IsChanged = false;

    /**
     * Een lege constructor
     */
    public NutsSoort() {
    }

    /**
     * Een constructor waarbij Ingangsdatum, Verbruik en Vorigemeterstand mee
     * gegeven kunnen worden
     * @param Ingangsdatum Een Date met de ingangsdatum
     * @param Verbruik Een integer met het verbruik
     * @param VorigeMeterstand Een integer met de vorigemeterstand
     */
    public NutsSoort(Date Ingangsdatum, int Verbruik, int VorigeMeterstand) {
        this.setIngangsdatum(Ingangsdatum);
        this.setVerbruik(Verbruik);
        this.setVorigeMeterstand(VorigeMeterstand);
    }

    /**
     * Haalt het unieke ID van deze gas aansluiting op
     * @return Een integer met het ID
     */
    public int getId() {
        return id;
    }

    /**
     * Stelt het unieke ID van deze gas aansluiting in
     * @param id Een integer met het id
     */
    public void setId(int id) {
        this.id = id;
    }

    /**
     * Haalt de Ingangsdatum op
     * @return Een Date met de ingangsdatum
     */
    public Date getIngangsdatum() {
        return _Ingangsdatum;
    }

    /**
     * Stelt de ingangsdatum in
     * @param Ingangsdatum Een Date met de ingangsdatum
     */
    public void setIngangsdatum(Date Ingangsdatum) {
        if (!this.getIngangsdatum().equals(Ingangsdatum)) {
            this.setIsChanged(true);
        }
        this._Ingangsdatum = Ingangsdatum;
    }

    /**
     * Haalt het verbruik op
     * @return Een integer met het verbruik.
     */
    public int getVerbruik() {
        return _Verbruik;
    }

    /**
     * Stelt het verbruik in
     * @param Verbruik Een integer met het verbruik
     */
    public void setVerbruik(int Verbruik) {
        if (this.getVerbruik() != Verbruik) {
            this.setIsChanged(true);
        }
        this._Verbruik = Verbruik;
    }

    /**
     * Haalt de vorige meterstand op
     * @return Een integer met de meterstand
     */
    public int getVorigeMeterstand() {
        return _VorigeMeterstand;
    }

    /**
     * Stelt de vorige meterstand in
     * @param VorigeMeterstand Een integer met de vorige meterstand
     */
    public void setVorigeMeterstand(int VorigeMeterstand) {
        if (this.getVorigeMeterstand() != VorigeMeterstand) {
            this.setIsChanged(true);
        }
        this._VorigeMeterstand = VorigeMeterstand;
    }

    /**
     * Haalt het perceel object op waar deze nutssoort bij hoort
     * @return Een Perceel object
     */
    public Perceel getPerceel() {
        return this.Perceel;
    }

    /**
     * Stelt het perceel object in waar deze nutssoort bij hoort
     * @param Perceel Een Perceel object
     */
    public void setPerceel(Perceel Perceel) {
        this.Perceel = Perceel;
        this.setPerceel_Id(Perceel.getPerceelId());
    }

    public int getPerceel_Id() {
        return _perceel_Id;
    }

    public void setPerceel_Id(int perceel_Id) {
        this._perceel_Id = perceel_Id;
    }

    public boolean isIsChanged() {
        return _IsChanged;
    }

    public void setIsChanged(boolean IsChanged) {
        this._IsChanged = IsChanged;
    }
}
